package ln.javatest.day14.demo01;
/*
字节输入流一次读取多个字节的方法：
     int read(byte[] b)从输入流中读取一定数量的字节，并将其存储在缓冲区数组 b 中。
明确两件事情：
    1.方法的参数byte[]的作用？
        起缓冲作用，存储每次读取到的多个字节
        数组的长度一次定义为1024（1Kb）或者是1024的整数倍
    2.方法的返回值int是什么？
        每次读取的有效字节个数
String类的构造方法：
    String(byte[] bytes)：把字节数组转换为字符串
    String（byte[] bytes,int offset,int set):把字节数组的一部分转换为字符串
        offset:数组的开始索引
        length:转换的字节个数
*/

import java.io.FileInputStream;
import java.io.IOException;

public class Demo02InputStream {
    public static void main(String[] args) throws IOException {
        //1.创建FileInputStream对象，构造方法中绑定要读取的数据源
        FileInputStream fis = new FileInputStream("D:\\桌面\\Java笔记\\1.txt");
        // 2.使用FileInputStream对象中的方法read，读取文件
        //int read(byte[] b)从输入流中读取一定数量的字节，并将其存储在缓冲区数组 b 中。
        //读取到文件末尾返回-1
        byte[] bytes = new byte[1024];
        int len = 0;
        while((len = fis.read(bytes))!= -1){
            System.out.print(new String(bytes,0,len)); //abc
        }
        //3.释放资源
        fis.close();
    }
}
